|
We use a prism to split
sunlight up into its component colors (ie, electromagnetic
frequencies). In the world of sound, a Fourier transform is
like a prism; it splits a sound signal up into its component
frequencies. Like a light spectrum, we can represent a frequency
spectrum by having the x-axis be frequency and the y-axis
be "the strength of frequency x contained in the beam/signal."
Suppose we recorded a 500Hz and a 800Hz tuning fork playing
together. If we used a fourier transform on the recording,
we'd see two peaks, one at 500Hz and the other at 800Hz.
To "sample" a freshly
baked cake is to try part of the whole cake with
the assumption that parts we didn't try taste nearly the same.
A computer samples sound by seeing how hard the air is pressing
against the microphone at an instant in time, called deflection
sampling (because the microphone membrane deflects a certain
distance depending on the air pressure due to sound waves).
Like sampling cake, a computer samples sound in small pieces
and assumes the sound between these intervals didn't significantly
change. Because a computer can store samples thousands of
times a second, it can record samples quickly enough to recreate
the original sound. For example, when you see that CDs are
sampled at 44.1kHz, it means each speaker on your CD player
"plays" 44,100 speaker positions per second.
A frequency sample is
like a photograph of a light spectrum coming out of a prism.
For the given moment in time, the photograph shows the strength
of each of the frequencies composing the signal. But because
it's a photograph, we can't say anything about what the light
signal was like before or after the moment in time when the
photograph was taken, we can only say it was similar shortly
before and after the photograph time.
WhiteCap is a black box
that 1) runs programs called configs, 2) draws the wireframes
these configs define, and 3) provides access to a frequency
spectrum of the current audio whenever the current config
asks for it. Before WhiteCap provides a frequency spectrum
to the config, WhiteCap must choose the spectrum's resolution.
Let's say you had to describe to a friend over the phone a
photograph of a light spectrum (split by a prism). You could
say, "from red to violet, it goes strong, weak, none, strong,
strong," meaning that when looking at it, you chopped the
x-axis into 5 portions (or "bins") and described the intensity
of each portion. From that, your friend could recreate the
photograph, but it would only have 5 bins of resolution ("bins"
is used because real buckets or bins collect over the size
of their entire mouth--water falling in near a side is treated
the same as if it fell in the center). Now let's say your
friend wanted a higher resolution spectrum. To do this, you
could chop up the spectrum into more bins, say 20, and proceed
to tell your friend the intensity for each bin (making you
say 20 intensities total). In doing this, you're trading off
the speed to communicate the spectrum in return for your friend
getting a nicer looking spectrum. Increasing the spectrum
resolution (ie, having a high number of bins) causes WhiteCap
to run slower. If we tell WhiteCap to process only a few bins
per frequency sample, it runs faster. The 'FNum' parameter
in the WhiteCap preferences file sets how many bins WhiteCap
chops recorded frequency spectrums into. This means any config
that doesn't override the number of bins, you'll count it
FNum lines wide.
The 'FRge' parameter
affects how "wide" each of WhiteCap's bins are. The larger
this number, the more frequencies that will fall into a given
bin. Increasing the bin frequency width has the effect of
compressing the spectrum (ex, 10 buckets side by side stretch
longer distance than 10 cups).
|